package com.zufangbao.earth.handler;

import java.io.IOException;
import java.io.OutputStream;
import java.util.List;

import com.demo2do.core.entity.Result;
import com.zufangbao.earth.entity.security.Principal;
import com.zufangbao.sun.entity.finance.BatchPayDetail;
import com.zufangbao.sun.entity.finance.PaymentInfo;
import com.zufangbao.sun.entity.order.RepaymentType;

/**
 * 
 * @author zjm
 *
 */
public interface PaymentHandler {

	List<PaymentInfo> getOrdersByFactoringContract(Long factoringContractId, RepaymentType repaymentType);
	
	Result applyBatchPayForFactoring(String orderIds, String remark, Principal principal);
	
	List<PaymentInfo> getPaidOrdersInFactoring();
	
	List<PaymentInfo> getPaidOrdersNotInFactoring();
	
	List<PaymentInfo> getPaidOrdersByApp(Long appId);
	
	Result applyBatchPayForAgency(String orderIds, String remark, Principal principal);
	
	List<PaymentInfo> changeBatchPayDetailsToPaymentInfo(List<BatchPayDetail> batchPayDetailList);
	
	void createDetailExcel(Long batchPayRecordId, OutputStream output) throws IOException;

}
